package com.special.threademo.requests151demo;

import java.util.Arrays;
import java.util.List;
import java.util.TreeSet;

/**
 * @author LiuYC
 * @version 1.0.0
 * @create 2020-12-26 18:19
 */

public class SearchMaxValue {
    /**
     * 快速查找最大值的方法
     *
     * @param data
     * @return
     */
    public static int max(int[] data) {
        int max = data[0];
        for (int i : data) {
            max = max > i ? max : i;
        }
        return max;
    }

    /**
     * 先排序后取值的方法：
     *
     * @param data
     */
    public static int max2(int[] data) {

        Arrays.sort(data.clone());

        return data[data.length - 1];
    }

    /**
     * 集合去重，取到倒数第二个大的数字
     *
     * @param data
     */
    public static int getSecond(Integer[] data) {
        // 注意int[] h和integer[]是有区别的 更具体的区别就是，一个是泛型化的转化，而另外两个却不是！

        List<Integer> dataList = Arrays.asList(data);
        // 删除重复的，默认为升序排列！
        TreeSet<Integer> ts = new TreeSet<>(dataList);
        // 取得比最大值小的值，也就是第二大的值了
        return ts.lower(ts.last());
    }

    public static void main(String[] args) {
        /**
         * demo1
         */
        int[] data = {12, 234, 2, 3, 4, 5, 6666};
        System.out.println(max(data));

    }

    ;
}
